The present invention relates to computer systems and more particularly is concerned with the application of neural networks to applications such as spreadsheet programs.
Neural networks are powerful information processors. They typically include a plurality of processing elements called neurons arranged in layers. They further include interconnections between the units of successive layers. A network has an input layer, an output layer, and one or more "hidden" layers in between. The hidden layer or layers are necessary to allow solutions of non-linear problems. Each unit functions in some ways analogous to a biological neuron. A unit is capable of generating an output signal which is determined by the weighted sum of input signals it receives and an activation function specific to that unit. A unit is provided with inputs, either from outside the network or from other units, and uses these to compute a linear or non-linear output. The unit's output goes either to other units in subsequent layers or to outside the network. The input signals to each unit are weighted by factors derived in a learning process.
When the weight and activation function factors have been set to correct levels, a complex stimulus pattern at the input layer successively propagates between the hidden layers, to result in a simpler output pattern, such as only one output layer unit having a significantly strong output. The network is "taught" by feeding it a succession of input patterns and corresponding expected output patterns. The network "learns" by measuring the difference at each output unit between the expected output pattern and the pattern that it just produced. Having done this, the internal weights and activation functions are modified by a learning algorithm to provide an output pattern which most closely approximates the expected output pattern, while minimizing the error over the spectrum of input patterns. Neural network learning is an iterative process involving multiple lessons. Neural networks have the ability to process information in the presence of noisy or incomplete data and yet still generalize to the correct solution.
Neural networks have many strong points. For example, they train by example and will adjust dynamically to new information. They also generalize from sets of specific examples and are tolerant to "noisy" or random inputs. There is a gradual degradation in performance when a neural expert is asked to solve a problem outside of its experience. New knowledge in the form of new examples increases learning time minimally. In short, the strong points of neural networks are the creation of expert systems and the ability to produce forecasts using historical data.
Despite all of these advantages, there are also disadvantages attendant to neural networks. For example, a neural network cannot explain itself in the form of real rules. Additionally, it may get stuck in a local minimum giving a user a good answer that is not necessarily the best answer. Still further, data must often be pre-processed in order for the neural network to effectively learn from it. Training a neural network with a large data set may take days or even weeks.
An alternative approach to artificial intelligence is rule based expert systems. A rule based expert system is composed of two major components. One component is the inference engine which is a set of "if/then" rules that processes inputs in a sophisticated manner. The other component is the rules or knowledge base. The inference engine processes routines depending on the value of the inputted data. Rules are either stated by an expert where developed from data using an algorithm such as ID3.
Highly effective expert systems can be developed if the rules governing the problem are already known. Additionally, a rule based expert system is capable of explaining how it arrives and then answers. The disadvantages however are that rule based systems generalize poorly. Generalization can be particularly poor if the rules have been generated by an algorithm such as ID3. Additionally, using an expert to generate rules is time consuming and expensive. If knowledge changes are added, an expert is needed to generate new rules. Another disadvantage of expert systems is that the human experts sometimes develop incorrect rules as a result of intuitive work.
Neither the neural network nor the rule-based paradigms are particularly good at conventional, number crunching or procedural algorithms. It is difficult to test various "what if" scenarios quickly in any of the products currently on the market. Neither method has a standard user-friendly interface to facilitate easy learning and implementation. To date, none of the products on the market mix the neural and rule-based technologies in the same environment. Currently, it is necessary to purchase two separate products, each with its own learning curve.
Spreadsheets are well known software application programs used in connection with microcomputers. A spreadsheet program is essentially a large electronic piece of paper that an end-user can work with in a variety of ways.
The screen display of a spreadsheet package is comprised of two main parts: the control panel and the spreadsheet window. The control panel is the area of the screen in which the command menus are displayed. These menus are the primary way to issue instructions to the program.
The spreadsheet window is arranged in columns and rows of cells in which to enter data. The most common spreadsheet arrangement is 256 lettered columns by 8192 numbered rows. Using this configuration, spreadsheet cell addresses range from "A1" to "IV 8192". Labels, numbers or formulas may be entered anywhere in the spreadsheet to build customized applications.
Another way to issue command instructions is to use the built-in functions of the spreadsheet. These built-in functions may be entered into any cell and are treated as formulas.
The recalculation mechanism is an important part of any spreadsheet. The values of formulas often depend upon the values of formulas or numbers in other cells. Thus, the values of formulas must be updated after every entry of a number or formula. Formulas are updated in a natural order of their dependencies.
Integrated spreadsheet packages combine spreadsheets, database management and graphics into a single environment. Database commands are issued using either menu commands or built-in functions. Graphic commands are issued using the menu.
To date, there is no spreadsheet application program available which incorporates a neural network. It is possible to develop an expert system using the macro language of a spreadsheet.
Accordingly, it is an object of the present invention to provide a method for embedding a neural network and expert system into an application program.
It is a further object of the present invention to provide a method as above in which information stored within an application program can be used to train the neural network expert system.
It is still a further object of the present invention to provide a method for embedding a neural network and expert system into a spreadsheet program.
These and other objects and advantages will become more clear from the following description and drawings in which like reference numerals depict like elements.